变量太多,到底应该怎么选?
↑关注+星标,听说他有点东西
全文共2501字,阅读全文需7分钟
大家好,我是小一
今天的文章源自于前不久工作中的一个技术交流会,期间有个同事和我在讨论模型的变量选择。
当时讨论的多是从宏观角度去考量对于模型变量筛选的方法,例如从变量的缺失程度、区分能力、稳定性、相关性、共线性等方面去筛选。
上面的几个方面除了缺失程度以外每个都可以去深入研究下,例如今天的文章就从区分能力去研究
在文章中会看到一些词汇,更多金融风控相关词汇在以前的文章中都有提到。
了解专业术语 == 成功入门
先来说说 IV
第一次听IV这个词,它到底是什么?
IV的全称是:Information Value,字面意思:信息价值/信息量
IV用来干什么?
可能从字面意义并不能了解IV是什么,别急,接着往下看
在分类模型中,通常需要对自变量进行筛选。
例如当有300个候选自变量时,我们不可能直接将所有的变量都放到模型中进行训练,一般情况下我们会从300个候选变量中选择部分变量形成入模变量列表放入到模型中。
在筛选入模变量的时候我们会基于以下的标准:变量的预测能力、变量之间的相关性、变量的简单性(容易生成并使用)、变量在业务上的可解释性(特别时评分卡模型,必须要求入模变量具有强可解释性)等等。
其中最主要和最直接的衡量标准是变量的预测能力
变量的预测能力并不是一个直观的可表示的说法,我们在筛选变量的时候需要一个可量化的指标来决定究竟选择哪些变量。
我们总不能说:”我觉得这个变量的预测能力比较强,所以我们就选择这个变量吧“,我们需要的是一个具体的、量化的评估指标来确定选择这个变量。
IV值就是这样的一个指标,类似的指标还有信息增益、gini系数。
可以回想一下在决策树生成的过程中节点的划分是如何进行的,这里变量的筛选是同样的原理。
大话系列|决策树—相亲?怎么说?
IV的数学理解
字面意思应该都可以理解了,当然IV也有它的数学奥义
从数学角度上变量的预测能力我们可以这样理解:假设在一个分类问题中,目标变量的类别有两类:Y1和Y2。对于一个待预测样本A判断其属于Y1还是Y2,我们是需要一定的信息作为判断依据的。
假设这个信息的总量是M,而这些信息是通过该样本的自变量C1、C2、...、Cn体现的,如果某个自变量Ci蕴含的信息最多,那么它对于判断样本A属于Y1还是Y2的贡献度最大,Ci的信息价值就越大,也就是Ci的IV就越大,它就越容易进入到入模变量列表中。
举个简单的例子:现在有一些学生身体特征的数据(身高、体重、肤色、眼睛颜色、各科成绩等),我们需要通过这些数据判断学生是男生还是女生。
根据以往的经验我们发现男生的身高体重和女生的身高体重差别较大,而其他变量不具有区分性。
所以在筛选变量的时候,身高和体重对于男女生的划分贡献度最大,它们的IV值也越大,越容易进入到入模变量列表中。
IV的计算
说白了,使用IV可以用来挑选特征
敲黑板,重点来看一下IV是怎么算的!
前面介绍了IV的直观理解,下面看一下IV的计算公式:
要看懂这个公式就需要明白另一个概念:WOE
所以先来看下WOE是什么,回过头我们再来看IV的计算公式
看看WOE
WOE又是什么东西?
WOE的全程:Weight of Evidence,字面意思:证据权重
WOE是什么?
字面意思还是无法直接理解,接着往下看
WOE是对原始自变量的一种编码形式
又有问题了,编码形式是什么呢?
我猜你可能听过离散化、分箱、独热编码这些词中的一个,也可能知道在建模之前需要对类别型数据进行离散化。
例如性别中的男女需要离散成01变量,因为计算机不能识别男女,但是可以通过01进行判断。
同理,WOE也是一种编码形式
在对一个变量进行WOE编码之前,需要把这个变量进行分组处理,分组以后,对于第i组,WOE的计算公式是:
熟不熟悉,这个就是上面IV计算公式中的一部分。
其中是这个组中的响应客户(风控模型中,对应违约客户,也就是模型预测变量为1的样本)占样本中所有响应客户的比例,表示这个组中的未响应客户占样本中所有未响应客户的比例。
更进一步的,表示第i组中响应客户的样本数,表示总体样本中响应客户的样本数,表示第i组中未响应客户的样本数,表示总体样本中未响应客户的样本数。
对这个公式我们可以做一个简单的变换:
此时的结果未变,WOE可以理解成该组样本中响应客户与未响应客户的比值,和所有样本中这个比值的差异。
我们发现,对于某个变量的不同组的WOE值,响应客户的占比越多(分子越大),WOE值越大。
因为同一个变量不同组的分母是固定的,分子越大WOE值越大。
当该组的比值和总体比值相等,WOE为0;当该组比值大于总体比值,WOE为正;当该组比值小于总体比值,WOE为负。
另外,当该组的响应客户为0时,WOE为;当该组的未响应客户为0,WOE为。这个属于IV的极端情况,感兴趣的可以思考一下。
再来看IV
因为每个变量分成了多个组,所以就会存在多个WOE,那么IV就是这多个WOE的总和,不过这里需要对每个组的WOE添加一个权重系数,这个的权重系数就是
所以IV值的计算公式也就是:
稍稍总结一下
一般情况下,如果模型中加入过多的指标往往会比较冗余,因此在有限个指标中要使模型的效果更佳,自然需要挑选对坏样本识别能力较强的变量。
常见的做法是计算每个变量的IV值,并从大到小进行排序,挑选排名前N的变量,或者挑选大于一定阈值的变量。
因为对于IV值较低的变量,他们本身能提供给模型的贡献也比较少,剔除掉也不足为惜了。
ok,上面就是今天关于变量选择的主要内容
说点题外话
通过计算变量的IV值一方面可以进行变量选择,另一方面分箱可以大大降低异常数据对模型的影响。
举个最简单的例子,年龄变量在WOE分组的时候将小于10岁的分为一组,大于60岁的分为一组(10到60中间根据情况分N组)。这样分组之后异常年龄(小于0岁,大于100岁)也就不再是异常值,模型对异常数据有很强的鲁棒性
关于变量选择文章开头也介绍了其他方法,后面有会陆续提到,不过在金融风控中关于IV和WOE的理解还是相当重要的。
历史文章
了解专业术语 == 成功入门
普及一个数分的领域,可能对你有用
我是小一,当你走遍所有失败的路,最后一条就是成功之路
期待你的三连
!
我们下节见